Integrated circuits such as programmable integrated circuits may contain volatile memory elements in the form of static random access memory (SRAM) cells. In programmable integrated circuits, SRAM cells may serve as configuration random access memory (CRAM) cells. Programmable integrated circuits are a type of integrated circuit that can be programmed by a user to implement a desired custom logic function. CRAM cells are used to store configuration data supplied by the user. Once loaded, CRAM cells supply control signals to transistors to configure the transistors to implement the desired logic function.
Volatile memory elements such as SRAM and CRAM cells are typically based on cross-coupled inverters (latches). In each memory element, the cross-coupled inverters may be connected to an address transistor that is turned on when data is being read from or written into the memory element. When no data is being read from or written into the memory element, the address transistor is turned off to isolate the memory element.
There is a trend with each successive generation of integrated circuit technology to scale transistors to smaller sizes, smaller threshold voltages, and smaller power supply voltages. Lower power supply voltages and smaller devices may lead to decreased read/write margins for volatile memory elements. This can pose challenges for reliable device operation.
With conventional techniques, memory cell stability is ensured by adjusting transistor sizes and by forming transistors with asymmetric pocket implants. Redundant resources may also be provided so that defects can be bypassed by switching redundant circuitry into use. Although these approaches are sometimes satisfactory, they can lead to undesirable area overhead and increased manufacturing cost.